Method to derive at least one motion vector of a bi-predictive block in a current picture

ABSTRACT

In one embodiment, a method for a moving picture coding system to derive at least one motion vector of a bi-predictive block in a current picture from a motion vector of a first block in a first picture includes selecting, by the moving picture coding system, a list 1 motion vector of the first block in the first picture as a motion vector for deriving list 0 and list 1 motion vectors of the bi-predictive block if the first block only has the list 1 motion vector, the first picture being permitted to be located temporally before the current picture and permitted to be located temporally after the current picture, scaling the selected motion vector and deriving the list 0 and list 1 motion vectors of the bi-predictive block by applying a bit operation to the scaled motion vector, the bit operation including 8 bits right shift.

PRIORITY INFORMATION

This application is a divisional of U.S. application Ser. No. 13/850,332filed on Mar. 26, 2013, which is a continuation of U.S. application Ser.No. 12/285,553 filed Oct. 8, 2008 and issued as U.S. Pat. No. 8,432,969,which is a divisional of U.S. application Ser. No. 11/044,002 filed Jan.28, 2005 and issued as U.S. Pat. No. 7,606,307, which is a divisional ofU.S. application Ser. No. 10/338,283 filed Jan. 6, 2003 and issued asU.S. Pat. No. 7,233,621, which claims priority under 35 U.S.C. 119 onKorean Application No. 10-2002-0060742 filed Oct. 4, 2002, KoreanApplication No. 10-2002-0061243 filed Oct. 8, 2002 and Korea ApplicationNo. 10-2002-0071226, filed Nov. 15, 2002; the contents of each of whichare hereby incorporated by reference in their entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a moving picture coding method, andmore particularly to a technique for deriving motion vectors of a B(bi-predictive) picture.

2. Description of the Related Art

A conventional B picture has five types of predictive modes such asforward mode, backward mode, bi-directional mode, direct mode and intramode. In the forward mode, backward mode and bi-directional mode, thedirections of motion vectors can be recognized from mode names becausedirection information are involved in the mode names. In the directmode, two motion vectors of both directions are derived from a motionvector of a co-located block in a neighboring picture on the basis of atemporal redundancy characteristic that motion continuity is constantlymaintained between two adjacent pictures. This direct mode has anadvantage in terms of coding efficiency because motion information isnot sent to a decoder.

On the other hand, a B picture proposed in a next-generation movingpicture compression technique such as H.264 or MPEG-4 part 10 ischaracterized in that the B picture is allowed to be used as a referencepicture because it can be stored in a reference picture buffer. This Bpicture is further characterized in that it has five types of predictivemodes such as list 0 mode, list 1 mode, hi-predictive mode, direct modeand intra mode.

The list 0 mode is similar to the conventional forward mode, and motioninformation such as a reference picture index and motion vectordifference are indicated respectively by ref_idx_l0 and mvd_l0. The list1 mode is also similar to the conventional backward mode, and motioninformation such as a reference picture index and motion vectordifference are indicated respectively by ref_idx_l1 and mvd_l1. Thebi-predictive mode has two reference pictures, both of which may belocated temporally before or after the B picture, or which may belocated temporally before and after the B picture, respectively. In thiscase, two reference picture indexes and two motion vector differencesare indicated respectively by ref_idx_l0, ref_idx_l1, mvd_l0, andmvd_l1, and each reference pictures has picture order count (POC) datawhich is temporal location information.

In the direct mode, motion vectors are obtained by selecting any one ofa spatial technique and temporal technique. The spatial direct modetechnique is to derive list 0 and list 1 reference picture indexes andmotion vectors from neighboring blocks of a macroblock to be coded. Thetemporal direct mode technique is to derive a list 0 motion vectorMV_(F) and list 1 motion vector MV_(B) by scaling the only motionvector, a list 0 motion vector, of a co-located block in a list 1reference picture for direct mode, which is similar to the conventionalB picture. Here, the list 1 reference picture for direct mode is a Ppicture (hence the single motion vector) where an index for list 1prediction is 0, and a list 0 reference picture for direct mode is alist 0 reference picture pointed by a motion vector of a co-locatedblock in the list 1 reference picture for direct mode.

FIGS. 1(A) to 1(C) show default indexes for list 0 prediction, defaultindexes for list 1 prediction and list 1 reference pictures for directmode of respective B pictures in an IBBBP pattern when the number ofavailable list 0 and list 1 reference pictures (or the size of ashort-term buffer) is 6, respectively. Here, the default indexes forlist 0 prediction and the default indexes for list 1 prediction aredependant on an output order, or POC value, of a previously decodedreference picture regardless of a decoding order. In FIG. 1, all the Bpictures use a temporally following P picture as the list 1 referencepicture for direct mode.

FIGS. 2(A) to 2(C) show default indexes for list 0 prediction, defaultindexes for list 1 prediction and list 1 reference pictures for directmode of respective B pictures in an IBBB pattern using only the Bpictures, respectively. In FIG. 2(A), when a B picture to be coded isB8, a temporally preceding B5 with a list 1 index 0 is a list 1reference picture for direct mode. As shown FIG. 2(B), a list 1reference picture for direct mode of B7 to be subsequently decoded isthe temporally following B8. Last, as shown in FIG. 2(C), a list 1reference picture for direct mode of B9 to be subsequently decoded isthe temporally preceding B7.

In conclusion, as seen from FIGS. 1(A) to 2(C), a list 1 referencepicture for direct mode may be a P or B picture temporally following a Bpicture to be coded, or a B picture temporally preceding it.

FIGS. 3(A) to 3(H) show modes that a co-located block in a list 1reference picture for direct mode can have when the list 1 referencepicture temporally follows a B picture. In this case, because the list 1reference picture can be a P picture or B picture, the co-located blockthereof has one or two motion vectors, or the intra mode. Thenext-generation moving picture compression technique, such as H.264 orMPEG-4 part 10, permits the reordering of reference picture indexes at aslice level, so an index 0 for list 1 prediction can be assigned to apicture just after a B picture. That is, since the list 1 referencepicture can exist just after a B picture, a motion vector of theco-located block can be directed forward or backward.

FIGS. 4(A) to 4(H) show modes that a co-located block in a list 1reference picture for direct mode can have when the list 1 referencepicture temporally precedes a B picture. In this case, the co-locatedblock has one or two motion vectors, or the intra mode, as describedabove. Other reference pictures can be present between the list 1reference picture and the B picture, so a motion vector of theco-located block can point to temporally forward or backward direction.

As seen from FIGS. 3(A) to 4(H), the list 1 reference picture for directmode can have various predictive modes, resulting in a need to explore amethod for calculating direct mode motion vectors in consideration ofsuch various cases.

SUMMARY OF THE INVENTION

The present invention relates to a method of deriving a motion vector ofa bi-predictive block based on a motion vector of a co-located block ina reference picture.

In one embodiment, the method includes selecting the list 1 motionvector of the co-located block in a first reference picture if theco-located block only has the list 1 motion vector. The first referencepicture is a type of reference picture permitted to be locatedtemporally before or after a current picture. The current pictureincludes the bi-predictive block. The method further includes scalingthe selected motion vector based on temporal distance between thecurrent picture and the first reference picture, and deriving at leastone motion vector of the bi-predictive block by applying a bit operationto the scaled motion vector.

In one embodiment, the method includes selecting, by a moving picturecoding system, a list 0 motion vector of the first block in the firstpicture as the motion vector for deriving list 0 and list 1 motionvectors of the bi-predictive block if the first block has both a list 1motion vector and the list 0 motion vector, the first picture beingpermitted to be located temporally before the current picture andpermitted to be located temporally after the current picture, deriving afirst temporal distance between the current picture and a referencepicture of the current picture, deriving a second temporal distancebetween the first reference picture and a reference picture of the firstpicture, scaling the selected motion vector based on the first and thesecond temporal distances and deriving at least one motion vector of thebi-predictive block by applying a bit operation to the scaled motionvector, the bit operation including 8 bits right shift.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects, features and other advantages of thepresent invention will be more clearly understood from the followingdetailed description taken in conjunction with the accompanyingdrawings, in which:

FIGS. 1(A) to 1(C) are views illustrating list 1 reference pictures fordirect mode in a general IBBBP pattern;

FIGS. 2(A) to 2(C) are views illustrating list 1 reference pictures fordirect mode in a general IBBB pattern;

FIGS. 3(A) to 3(H) are views illustrating cases where a list 1 referencepicture for direct mode temporally follows a B picture (L0 MV: list 0motion vector and L1 MV: list 1 motion vector);

FIGS. 4(A) to 4(H) are views illustrating cases where a list 1 referencepicture for direct mode temporally precedes a B picture (L0 MV: list 0motion vector and L1 MV: list 1 motion vector);

FIG. 5 is a view illustrating the motion vector prediction of a block Eusing motion vectors of neighboring blocks A, B and C in considerationof a general spatial redundancy;

FIGS. 6(A) to 6(C) are views illustrating cases where both a macroblockof a B picture and a co-located macroblock in a list 1 reference picturefor direct mode are in a frame mode and the list 1 reference picturetemporally follows the B picture;

FIGS. 7(A) to 7(D) are views illustrating cases where both a macroblockof a B picture and a co-located macroblock in a list 1 reference picturefor direct mode are in a field mode and the list 1 reference picturetemporally follows the B picture;

FIGS. 8(A) to 8(C) are views illustrating cases where a macroblock of aB picture is in a field mode, a co-located macroblock in a list 1reference picture for direct mode is in a frame mode, and the list 1reference picture temporally follows the B picture;

FIGS. 9(A) to 9(C) are views illustrating cases where a macroblock of aB picture is in a frame mode, a co-located macroblock in a list 1reference picture for direct mode is in a field mode, and the list 1reference picture temporally follows the B picture;

FIGS. 10(A) and 10(B) are views illustrating cases where both amacroblock of a B picture and a co-located macroblock in a list 1reference picture for direct mode are in a frame mode and the list 1reference picture temporally precedes the B picture;

FIGS. 11(A) to 11(D) are views illustrating cases where both amacroblock of a B picture and a co-located macroblock in a list 1reference picture for direct mode are in a field mode and the list 1reference picture temporally precedes the B picture;

FIGS. 12(A) and 12(B) are views illustrating cases where a macroblock ofa B picture is in a field mode, a co-located macroblock in a list 1reference picture for a general direct mode is in a frame mode, and thelist 1 reference picture temporally precedes the B picture; and

FIGS. 13(A) and 13(B) are views illustrating cases where a macroblock ofa B picture is in a frame mode, a co-located macroblock in a list 1reference picture for a general direct mode is in a field mode, and thelist 1 reference picture temporally precedes the B picture.

DESCRIPTION OF THE EXAMPLE EMBODIMENTS

The present invention proposes a method for deriving direct mode motionvectors when a co-located macroblock in a list 1 reference picture fordirect mode is in an intra mode, and a method for acquiring the directmode motion vectors in a case where the list 1 reference picturetemporally follows a B picture and in a case where the list 1 referencepicture temporally precedes the B picture.

The present invention further proposes a method for calculating thedirect mode motion vectors regardless of the locations of list 0 andlist 1 reference pictures for direct mode by assigning a sign to aninter-picture temporal distance value to simplify algorithms used forcalculation of the direct mode motion vectors.

On the other hand, a frame mode and a field mode are switched at apicture level, so the B picture and list 1 reference picture can becoded into frame mode or field mode. As a result, a macroblock of the Bpicture and a co-located macroblock of the list 1 reference picture havefour types of frame/field-coded combinations.

[1] Case where Co-Located Macroblock of List 1 Reference Picture is inIntra Mode

As shown in FIGS. 3(F) and 4(F), a co-located macroblock in a list 1reference picture for direct mode can be in the intra mode regardless ofa temporal location of the reference picture. Because the macroblock inthis mode has no motion information, a conventional method simply setsdirect mode motion vectors to 0 and defines a list 0 reference pictureto be the latest decoded picture. However, the conventional methodcannot guarantee a high coding efficiency. Therefore, the presentinvention predicts and calculates list 0 and list 1 reference picturesand motion vectors from neighboring blocks of a macroblock of a Bpicture to be coded, on the basis of a spatial redundancy.

A reference picture index for each list mode is acquired in thefollowing manner. FIG. 5 is a view illustrating the motion vectorprediction of a block E using motion vectors of neighboring blocks A, Band C in consideration of a general spatial redundancy.

if the neighboring blocks A, B and C have different reference pictureindexes, a smallest one of the reference picture indexes is determinedto be a reference picture index for the direct mode.

if two ones of the neighboring blocks have the same reference pictureindex, this index is determined to be a reference picture index for thedirect mode.

if all the neighboring blocks have the same reference picture index,this index is determined to be a reference picture index for the directmode.

Also, a motion vector for each list mode is acquired through thefollowing motion vector prediction. At this time, if any one of theneighboring blocks A, B and C is in the intra mode, its list 0 and list1 motion vectors are set to 0.

a motion vector having the same direction as that of a temporal locationof the above-acquired reference picture for each list mode is selectedfrom a neighboring block and a motion vector for each list mode isacquired through a median operation.

-   -   if a neighboring block has two motion vectors with the same        directions, only one of the two motion vectors is selected in        that block and included in the median operation.

On the other hand, if neither of the effective list 0 and list 1reference picture indexes can be derived from a neighboring block, theyare set to 0 and a motion vector for each list mode is set to 0.

[2] Cases where List 1 Reference Picture for Direct Mode TemporallyFollows B Picture

Case 1: Both Macroblock of B Picture and Co-Located Macroblock of List 1Reference Picture are in Frame Mode

As seen from FIGS. 3(A) to 3(H), the co-located block in the list 1reference picture can have one motion vector or two motion vectors. Inthe present invention, if the co-located block has two motion vectors,one (L0 MV or L1 MV) of the two motion vectors is selected and directmode motion vectors are derived from the selected motion vector (thiswill hereinafter be described on the basis of the case where L0 MV (list0 motion vector) is selected).

Accordingly, FIGS. 3(A) and 3(C) can be simply depicted as FIG. 6(A),FIGS. 3(B), 3(D) and 3(E) as FIG. 6(C), and FIGS. 3(G) and 3(H) as FIG.6(B), respectively.

If the list 0 reference picture and list 1 reference picture for directmode are located temporally before and after the B picture, respectively(FIG. 6(A)), or if both the list 0 and list 1 reference pictures for thedirect mode are located temporally after the B picture and the list 0reference picture temporally follows the list 1 reference picture (FIG.6(B)), direct mode motion vectors MV_(F) and MV_(B) are calculated asfollows:MV_(F)=TD_(B)×MV/TD_(D)MV_(B)=(TD_(B)−TD_(D))×MV/TD_(D)

where, TD_(B) represents a temporal distance between a current B frameand a list 0 reference frame, and TD_(D) represents a temporal distancebetween a list 1 reference frame and the list 0 reference frame.

Applying a bit operation to the calculation of the direct mode motionvectors MV_(F) and MV_(B) for the convenience thereof, the aboveequation may be expressed as follows:Z=TD_(B)×256/TD_(D) MV_(F)=(Z×MV+128)>>8W=Z−256 MV_(B)=(W×MV+128)>>8

If both the list 0 and list 1 reference pictures for the direct mode arelocated temporally after the B picture and the list 0 reference picturetemporally precedes the list 1 reference picture (FIG. 6(C)), the directmode motion vectors MV_(F) and MV_(B) are calculated as follows:MV_(F)=−TD_(B)×MV/TD_(D)MV_(B)=−(TD_(B)+TD_(D))×MV/TD_(D)

This equation may be expressed as follows:Z=−TD_(B)×256/TD_(D) MV_(F)=(Z×MV+128)>>8W=Z−256 MV_(B)=(W×MV+128)>>8

Case 2: Both Macroblock of B Picture and Co-Located Macroblock of List 1Reference Picture are in Field Mode

FIGS. 7(A) to 7(D) show cases where both the macroblock of the B pictureand the co-located macroblock of the list 1 reference picture are in thefield mode. Each motion vector of the macroblock of the B picture isderived from a motion vector of a co-located block in a list 1 referencefield of the same parity.

If the list 0 and list 1 reference pictures for the direct mode arelocated temporally before and after the B picture, respectively (FIG.7(A)), or if both the list 0 and list 1 reference pictures for thedirect mode are located temporally after the B picture and the list 0reference picture temporally follows the list 1 reference picture (FIG.7(B)), direct mode list 0 and list 1 motion vectors MV_(F,i) andMV_(B,i) for each field i of a B frame (i=0 signifies a first field andi=1 signifies a second field) are calculated as follows:MV_(F,i)=TD_(B,i)×MV_(i)/TD_(D,i)MV_(B,i)=(TD_(B,i)−TD_(D,i))×MV_(i)/TD_(D,i)

where, MV_(i) represents a motion vector of a co-located block of afield i in a list 1 reference frame, TD_(B,i) represents a temporaldistance between a current B field and a list 0 reference field, andTD_(D,i) represents a temporal distance between a list 1 reference fieldand the list 0 reference field.

The above equation may be expressed as follows:Z=TD_(B,i)×256/TD_(D,i) MV_(F,i)=(Z×MV_(i)+128)>>8W=Z−256 MV_(B,i)=(W×MV_(i)+128)>>8

If, because the co-located block of the field i in the list 1 referenceframe has a motion vector pointing to a field in a frame temporallyfollowing the B picture, both the list 0 and list 1 reference picturesfor the direct mode are located temporally after the B picture and thelist 0 reference picture temporally precedes the list 1 referencepicture (FIGS. 7(C) and 7(D)), the direct mode list 0 and list 1 motionvectors MV_(F,i) and MV_(B,i) are calculated as follows:MV_(F,i)=−TD_(B,i)×MV_(i)/TD_(D,i)MV_(B,i)=−(TD_(B,i)+TD_(D,i))×MV_(i)/TD_(D,i)

The above equation may be expressed as follows:Z=−TD_(B,i)×256/TD_(D,i) MV_(F,i)=(Z×MV_(i)+128)>>8W=Z−256 MV_(B,i)=(W×MV_(i)+128)>>8

Case 3: Macroblock of B Picture is in Field Mode and Co-LocatedMacroblock of List 1 Reference Picture is in Frame Mode

FIGS. 8(A) to 8(C) show cases where the macroblock of the B picture isin the field mode and the co-located macroblock of the list 1 referencepicture is in the frame mode. Here, letting the vertical coordinate ofthe current macroblock be y_(current) and the vertical coordinate of theco-located macroblock of the list 1 reference picture be y_(co-located),the relation of y_(co-located)=2×y_(current) is established between thetwo coordinates. Also, list 0 and list 1 reference fields are present inthe same parities of the list 0 and list 1 reference frames,respectively.

If the list 0 and list 1 reference pictures for the direct mode arelocated temporally before and after the B picture, respectively (FIG.8(A)), or if both the list 0 and list 1 reference pictures for thedirect mode are located temporally after the B picture and the list 0reference picture temporally follows the list 1 reference picture (FIG.8(B)), the direct mode list 0 and list 1 motion vectors MV_(F,i) andMV_(B,i) for each field i of the B frame are calculated as follows:MV_(F,i)=TD_(B,i)×MV/TD_(D)MV_(B,i)=(TD_(B,i)−TD_(D))×MV/TD_(D)

The above equation may be expressed as follows:Z=TD_(B,i)×256/TD_(D) MV_(F,i)=(Z×MV+128)>>8W=Z−256 MV_(B,i)=(W×MV+128)>>8

If, because the co-located block in the list 1 reference frame has amotion vector pointing to a frame temporally following the B picture,both the list 0 and list 1 reference pictures for the direct mode arelocated temporally after the B picture and the list 0 reference picturetemporally precedes the list 1 reference picture (FIG. 8(C)), the directmode list 0 and list 1 motion vectors MV_(F,i) and MV_(B,i) for eachfield i of the B frame are calculated as follows:MV_(F,i)=−TD_(B,i)×MV/TD_(D)MV_(B,i)=−(TD_(B,i)+TD_(D))×MV/TD_(D)

The above equation may be expressed as follows:Z=−TD_(B,i)×256/TD_(D) MV_(F,i)=(Z×MV+128)>>8W=Z−256 MV_(B,i)=(W×MV+128)>>8

where, TD_(B,i) represents a temporal distance between the current Bfield and the list 0 reference field, TD_(D) represents a temporaldistance between the list 1 reference frame and the list 0 referenceframe, and MV represents a motion vector of the co-located block in thelist 1 reference frame for direct mode.

Case 4: Macroblock of B Picture is in Frame Mode and Co-LocatedMacroblock of List 1 Reference Picture is in Field Mode

FIGS. 9(A) to 9(C) show cases where the macroblock of the B picture isin the frame mode and the co-located macroblock of the list 1 referencepicture is in the field mode. Here, letting the vertical coordinate ofthe current macroblock be y_(current) and the vertical coordinate of theco-located macroblock of the list 1 reference picture be y_(co-located),the relation of y_(co-located)=y_(current)/2 is established between thetwo coordinates. Also, because the field 0 of the list 1 reference frameis temporally closer to the B picture than the field 1 thereof, motioninformation of a co-located block of the field 0 is used for calculationof the direct mode motion vectors.

If the list 0 and list 1 reference pictures for the direct mode arelocated temporally before and after the B picture, respectively (FIG.9(A)), or if both the list 0 and list 1 reference pictures for thedirect mode are located temporally after the B picture and the list 0reference picture temporally follows the list 1 reference picture (FIG.9(B)), the direct mode list 0 and list 1 motion vectors MV_(F) andMV_(B) of the B frame are calculated as follows:MV_(F)=TD_(B)×MV₀/TD_(D,0)MV_(B)=(TD_(B)−TD_(D,0))×MV₀/TD_(D,0)

The above equation may be expressed as follows:Z=TD_(B)×256/TD_(D,0) MV_(F)=(Z×MV₀+128)>>8W=Z−256 MV_(B)=(W×MV₀+128)>>8

If, because the co-located block of the field 0 of the list 1 referenceframe has a motion vector pointing to a field of a frame temporallyfollowing the B picture, both the list 0 and list 1 reference picturesfor the direct mode are located temporally after the B picture and thelist 0 reference picture temporally precedes the list 1 referencepicture (FIG. 9(C)), the direct mode list 0 and list 1 motion vectorsMV_(F) and MV_(B) are calculated as follows:MV_(F)=−TD_(B)×MV₀/TD_(D,0)MV_(B)=−(TD_(B)+TD_(D,0))×MV₀/TD_(D,0)

The above equation may be expressed as follows:Z=−TD_(B)×256/TD_(D,0) MV_(F)=(Z×MV₀+128)>>8W=Z−256 MV_(B)=(W×MV₀+128)>>8

where, TD_(B) represents a temporal distance between the current B frameand the list 0 reference frame, TD_(D,0) represents a temporal distancebetween a field 0 of the list 1 reference frame and the list 0 referencefield, and MV₀ represents a motion vector of the co-located block in thefield 0 of the list 1 reference frame for direct mode.

[3] Cases where List 1 Reference Picture for Direct Mode TemporallyPrecedes B Picture

In this case, both the list 0 and list 1 reference pictures are locatedtemporally before the B picture.

Case 1: Both Macroblock of B Picture and Co-Located Macroblock of List 1Reference Picture are in Frame Mode

As seen from FIGS. 4(A) to 4(H), the co-located block in the list 1reference picture can have one motion vector or two motion vectors. Inthe present invention, if the co-located block has two motion vectors,one (L0 MV or L1 MV) of the two motion vectors is selected and directmode motion vectors are derived from the selected motion vector (thiswill hereinafter be described on the basis of the case where L0 MV (list0 motion vector) is selected).

Accordingly, FIGS. 4(A), 4(C), 4(E), 4(G) and 4(H) can be simplydepicted as FIG. 10(A), and FIGS. 4(B) and 4(D) as FIG. 10(B),respectively.

If the list 0 reference picture for direct mode temporally precedes thelist 1 reference picture for direct mode, direct mode motion vectorsMV_(F) and MV_(B) are calculated as follows (FIG. 10(A)):MV_(F)=TD_(B)×MV/TD_(D)MV_(B)=(TD_(B)−TD_(D))×MV/TD_(D)

where, TD_(B) represents a temporal distance between a current B frameand a list 0 reference frame, TD_(D) represents a temporal distancebetween a list 1 reference frame and the list 0 reference frame, and MVrepresents a motion vector of the co-located block in the list 1reference picture for direct mode.

The above equation may be expressed as follows:Z=−TD_(B)×256/TD_(D) MV_(F)=(Z×MV+128)>>8W=Z−256 MV_(B)=(W×MV+128)>>8

If the list 0 reference picture temporally follows the list 1 referencepicture, the direct mode motion vectors MV_(F) and MV_(B) are calculatedas follows (FIG. 10(B)):MV_(F)=−TD_(B)×MV/TD_(D)MV_(B)=−(TD_(B)+TD_(D))×MV/TD_(D)

This equation may be expressed as follows:Z=−TD_(B)×256/TD_(D) MV_(F)=(Z×MV+128)>>8W=Z−256 MV_(B)=(W×MV+128)>>8

where, TD_(B) represents a temporal distance between the current B frameand the list 0 reference frame, TD_(D) represents a temporal distancebetween the list 1 reference frame and the list 0 reference frame, andMV represents a motion vector of the co-located block in the list 1reference picture for direct mode.

Case 2: Both Macroblock of B Picture and Co-Located Macroblock of List 1Reference Picture are in Field Mode

If the list 0 reference picture for direct mode temporally precedes thelist 1 reference picture for direct mode, direct mode list 0 and list 1motion vectors MV_(F,i) and MV_(B,i) for each field i of a B frame arecalculated as follows (FIGS. 11(A) and 11(B)):MV_(F,i)=TD_(B,i)×MV_(i)/TD_(D,i)MV_(B,i)=(TD_(B,i)−TD_(D,i))×MV_(i)/TD_(D,i)

The above equation may be expressed as follows:Z=TD_(B,i)×256/TD_(D,i) MV_(F,i)=(Z×MV_(i)+128)>>8W=Z−256 MV_(B,i)=(W×MV_(i)+128)>>8

where, TD_(B,i) represents a temporal distance between a current B fieldand a list 0 reference field, TD_(D,i) represents a temporal distancebetween a list 1 reference field and the list 0 reference field, andMV_(i) represents a motion vector of a co-located block in a list 1reference field for direct mode.

If, because the co-located block of the field i in the list 1 referenceframe has a motion vector pointing to a field in a temporally followingframe, the list 0 reference picture temporally precedes the list 1reference picture, the direct mode list 0 and list 1 motion vectorsMV_(F,i) and MV_(B,i) are calculated as follows (FIGS. 11(C) and 11(D)):MV_(F,i)=−TD_(B,i)×MV_(i)/TD_(D,i)MV_(B,i)=−(TD_(B,i)+TD_(D,i))×MV_(i)/TD_(D,i)

The above equation may be expressed as follows:Z=−TD_(B,i)×256/TD_(D,i) MV_(F,i)=(Z×MV_(i)+128)>>8W=Z−256 MV_(B,i)=(W×MV_(i)+128)>>8

where, TD_(B,i) represents a temporal distance between the current Bfield and the list 0 reference field, TD_(D,i) represents a temporaldistance between the list 1 reference field and the list 0 referencefield, and MV represents a motion vector of the co-located block in thelist 1 reference field for direct mode.

Case 3: Macroblock of B Picture is in Field Mode and Co-LocatedMacroblock of List 1 Reference Picture is in Frame Mode

If the list 0 reference picture for direct mode temporally precedes thelist 1 reference picture for direct mode, the direct mode list 0 andlist 1 motion vectors MV_(F,i) and MV_(B,i) for each field i of the Bframe are calculated as follows (FIG. 12(A)):MV_(F,i)=TD_(B,i)×MV/TD_(D)MV_(B,i)=(TD_(B,i)−TD_(D))×MV/TD_(D)

The above equation may be expressed as follows:Z=TD_(B,i)×256/TD_(D) MV_(F,i)=(Z×MV+128)>>8W=Z−256 MV_(B,i)=(W×MV+128)>>8

where, TD_(B,i) represents a temporal distance between the current Bfield and the list 0 reference field, TD_(D) represents a temporaldistance between the list 1 reference frame and the list 0 referenceframe, and MV represents a motion vector of the co-located block in thelist 1 reference frame for direct mode.

If, because the co-located block in the list 1 reference frame has amotion vector pointing to a temporally following frame, the list 0reference picture temporally follows the list 1 reference picture, thedirect mode list 0 and list 1 motion vectors MV_(F,i) and MV_(B,i) foreach field i of the B frame are calculated as follows (FIG. 12(B)):MV_(F,i)=−TD_(B,i)×MV/TD_(D)MV_(B,i)=−(TD_(B,i)+TD_(D))×MV/TD_(D)

The above equation may be expressed as follows:Z=−TD_(B,i)×256/TD_(D) MV_(F,i)=(Z×MV+128)>>8W=Z−256 MV_(B,i)=(W×MV+128)>>8

where, TD_(B,i) represents a temporal distance between the current Bfield and the list 0 reference field, TD_(D) represents a temporaldistance between the list 1 reference frame and the list 0 referenceframe, and MV represents a motion vector of the co-located block in thelist 1 reference frame for direct mode.

Case 4: Macroblock of B Picture is in Frame Mode and Co-LocatedMacroblock of List 1 Reference Picture is in Field Mode

Because the field 1 f1 of the list 1 reference frame is temporallycloser to the B picture than the field 0 f0 thereof, motion informationof a co-located block of the field 1 f1 is used for calculation of thedirect mode motion vectors.

If the list 0 reference picture for direct mode temporally precedes thelist 1 reference picture for direct mode, the direct mode list 0 andlist 1 motion vectors MV_(F) and MV_(B) for each field i of the B frameare calculated as follows (FIG. 13(A)):MV_(F)=TD_(B)×MV₁/TD_(D,1)MV_(B)=(TD_(B)−TD_(D,1))×MV₁/TD_(D,1)

The above equation may be expressed as follows:Z=−TD_(B)×256/TD_(D,1) MV_(F)=(Z×MV₁+128)>>8W=Z−256 MV_(B)=(W×MV₁+128)>>8

where, TD_(B) represents a temporal distance between the current B frameand the list 0 reference frame, TD_(D,1) represents a temporal distancebetween a field 1 of the list 1 reference frame and the list 0 referencefield, and MV₁ represents a motion vector of the co-located block in thefield 1 of the list 1 reference frame for direct mode.

If, because the co-located block of the field 1 f1 of the list 1reference frame has a motion vector pointing to a field of a temporallyfollowing frame, the list 0 reference picture temporally follows thelist 1 reference picture, the direct mode list 0 and list 1 motionvectors MV_(F) and MV_(B) are calculated as follows (FIG. 13(B)):MV_(F)=−TD_(B)×MV₁/TD_(D,1)MV_(B)=−(TD_(B)+TD_(D,1))×MV₁/TD_(D,1)

The above equation may be expressed as follows:Z=−TD_(B)×256/TD_(D,1) MV_(F)=(Z×MV₁+128)>>8W=Z−256 MV_(B)=(W×MV₁+128)>>8

where, TD_(B) represents a temporal distance between the current B frameand the list 0 reference frame, TD_(D,1) represents a temporal distancebetween a field 1 of the list 1 reference frame and the list 0 referencefield, and MV₁ represents a motion vector of the co-located block in thefield 1 of the list 1 reference frame for direct mode.

[4] Cases where Direct Mode Motion Vectors are Calculated by AssigningSign to Inter-Picture Temporal Distance Value

In case the list 1 reference picture for direct mode is locatedtemporally before or after the B picture, two types of algorithms aregiven in each case. Such algorithms can be simply expressed by assigninga sign to an inter-picture temporal distance value, as follows.

Case 1: Both Macroblock of B Picture and Co-Located Macroblock of List 1Reference Picture are in Frame Mode

If both the macroblock of the B picture and the co-located macroblock ofthe list 1 reference picture are in the frame mode, the direct modemotion vectors MV_(F) and MV_(B) of the B picture can be calculated asfollows:MV_(F)=TD_(B)×MV/TD_(D)MV_(B)=(TD_(B)−TD_(D))×MV/TD_(D)orZ=TD_(B)×256/TD_(D) MV_(F)=(Z×MV+128)>>8W=Z−256 MV_(B)=(W×MV+128)>>8

where, TD_(B) represents a temporal distance between a current B frameand a list 0 reference frame, which is assigned a positive (+) sign ifit is measured from the B frame and a negative (−) sign if it ismeasured from the list 0 reference frame, TD_(D) represents a temporaldistance between a list 1 reference frame and the list 0 referenceframe, which is assigned a positive (+) sign if it is measured from thelist 1 reference frame and a negative (−) sign if it is measured fromthe list 0 reference frame, and MV represents a motion vector of theco-located block in the list 1 reference picture for direct mode.

Case 2: Both Macroblock of B Picture and Co-Located Macroblock of List 1Reference Picture are in Field Mode

If both the macroblock of the B picture and the co-located macroblock ofthe list 1 reference picture are in the field mode, the direct modemotion vectors MV_(F,i) and MV_(B,i) for each field i of the B frame canbe calculated as follows:MV_(F,i)=TD_(B,i)×MV_(i)/TD_(D,i)MV_(B,i)=(TD_(B,i)−TD_(D,i))×MV_(i)/TD_(D,i)orZ=−TD_(B,i)×256/TD_(D,i) MV_(F,i)=(Z×MV_(i)+128)>>8W=Z−256 MV_(B,i)=(W×MV_(i)+128)>>8

where, TD_(B,i) represents a temporal distance between a current B fieldand a list 0 reference field, which is assigned a positive (+) sign ifit is measured from the B field and a negative (−) sign if it ismeasured from the list 0 reference field, TD_(D,i) represents a temporaldistance between a list 1 reference field and the list 0 referencefield, which is assigned a positive (+) sign if it is measured from thelist 1 reference field and a negative (−) sign if it is measured fromthe list 0 reference field, and MV_(i) represents a motion vector of aco-located block in a list 1 reference field for direct mode.

Case 3: Macroblock of B Picture is in Field Mode and Co-LocatedMacroblock of List 1 Reference Picture is in Frame Mode

If the macroblock of the B picture is in the field mode and theco-located macroblock of the list 1 reference picture is in the framemode, the direct mode motion vectors MV_(F,i) and MV_(B,i) for eachfield i of the B frame can be calculated as follows:MV_(F,i)=TD_(B,i)×MV/TD_(D)MV_(B,i)=(TD_(B,i)−TD_(D))×MV/TD_(D)orZ=−TD_(B,i)×256/TD_(D) MV_(F,i)=(Z×MV+128)>>8W=Z−256 MV_(B,i)=(W×MV+128)>>8

where, TD_(B,i) represents a temporal distance between the current Bfield and the list 0 reference field, which is assigned a positive (+)sign if it is measured from the B field and a negative (−) sign if it ismeasured from the list 0 reference field, TD_(D) represents a temporaldistance between the list 1 reference frame and the list 0 referenceframe, which is assigned a positive (+) sign if it is measured from thelist 1 reference frame and a negative (−) sign if it is measured fromthe list 0 reference frame, and MV represents a motion vector of theco-located block in the list 1 reference frame for direct mode.

Case 4: Macroblock of B Picture is in Frame Mode and Co-LocatedMacroblock of List 1 Reference Picture is in Field Mode

If the macroblock of the B picture is in the frame mode, the co-locatedmacroblock of the list 1 reference picture is in the field mode and thelist 1 reference picture temporally follows the B picture, the field 0of the list 1 reference frame is temporally closer to the B picture thanthe field 1 thereof, so motion information of a co-located block of thefield 0 is used for calculation of the direct mode motion vectors. As aresult, the direct mode motion vectors MV_(F) and MV_(B) of the B framecan be obtained from the below equation where the motion information ofthe co-located block in the field 0 of the list 1 reference frame isused for calculation of the direct mode motion vectors:MV_(F)=TD_(B)×MV₀/TD_(D,0)MV_(B)=(TD_(B)−TD_(D,0))×MV₀/TD_(D,0)orZ=TD_(B)×256/TD_(D,0) MV_(F)=(Z×MV₀+128)>>8W=Z−256 MV_(B)=(W×MV₀+128)>>8

where, TD_(B) represents a temporal distance between the current B frameand the list 0 reference frame, which is assigned a positive (+) sign ifit is measured from the B frame and a negative (−) sign if it ismeasured from the list 0 reference frame, TD_(D,0) represents a temporaldistance between a field 0 of the list 1 reference frame and the list 0reference field, which is assigned a positive (+) sign if it is measuredfrom the field 0 of the list 1 reference frame and a negative (−) signif it is measured from the list 0 reference field, and MV₀ represents amotion vector of the co-located block in the field 0 of the list 1reference frame for direct mode.

If the list 1 reference picture temporally precedes the B picture, thefield 1 of the list 1 reference frame is temporally closer to the Bpicture than the field 0 thereof, so motion information of a co-locatedblock of the field 1 is used for calculation of the direct mode motionvectors. As a result, the direct mode motion vectors MV_(F) and MV_(B)of the B frame can be obtained from the below equation where the motioninformation of the co-located block in the field 1 of the list 1reference frame is used for calculation of the direct mode motionvectors:MV_(F)=TD_(B)×MV₁/TD_(D,1)MV_(B)=(TD_(B)−TD_(D,1))×MV₁/TD_(D,1)orZ=TD_(B)×256/TD_(D,1) MV_(F)=(Z×MV₁+128)>>8W=Z−256 MV_(B)=(W×MV₁+128)>>8

where, TD_(B) represents a temporal distance between the current B frameand the list 0 reference frame, which is assigned a positive (+) sign ifit is measured from the B frame and a negative (−) sign if it ismeasured from the list 0 reference frame, TD_(D,1) represents a temporaldistance between a field 1 of the list 1 reference frame and the list 0reference field, which is assigned a positive (+) sign if it is measuredfrom the field 1 of the list 1 reference frame and a negative (−) signif it is measured from the list 0 reference field, and MV₁ represents amotion vector of the co-located block in the field 1 of the list 1reference frame for direct mode.

As apparent from the above description, the present invention provides amethod for calculating direct mode motion vectors of a B (Bi-predictive)picture defined in a next-generation moving picture compressiontechnique. A technique for extracting the direct mode motion vectors ofthe B picture is proposed to raise the probability that a direct modewill be selected as a predictive mode of a macroblock, thereby improvinga B picture coding efficiency.

As further described with respect to the above embodiments, a method fordetermining motion vectors of a B (Bi-predictive) picture includes, if aco-located block in a list 1 reference picture for direct mode has twomotion vectors, selecting one (a list 0 motion vector or list 1 motionvector) of the two motion vectors, and deriving the direct mode motionvectors of the B picture from the selected motion vector.

The one of the list 0 and list 1 motion vectors, which points to apicture temporally closer to the list 1 reference picture for directmode, may be selected as the motion vector for derivation of the directmode motion vectors, or the list 0 motion vector may be selected as themotion vector for derivation of the direct mode motion vectors if thetwo motion vectors point to the same reference picture. The direct modemotion vectors may then be derived as discussed in detail above usingthe selected motion vector.

However, instead of selecting between the list 1 and list 0 motionvectors of the co-located block, the list 0 motion vector may beunconditionally selected as the motion vector for derivation of thedirect mode motion vectors. Namely, if both the list 0 and list 1 motionvectors of the co-located block exist, the list 0 motion vector isselected as the motion vector for derivation of the direct mode motionvectors. Accordingly, in this embodiment, the list 0 motion vector isselected regardless of whether a list 1 motion vector is present. Statedanother way, the list 0 motion vector is selected regardless of theprediction modes of the co-located block. The direct mode motion vectorsmay then be derived as discussed in detail above using the selectedmotion vector.

Also, according to another embodiment, one of the motion vectors of theco-located block in the list 1 reference picture for direct mode may beselected as the motion vector for derivation of the direct mode motionvectors regardless of modes (a list 0 mode and/or a list 1 mode) of themotion vectors of the co-located block. The direct mode motion vectorsmay then be derived as discussed in detail above using the selectedmotion vector.

In a further alternative embodiment, if a co-located block in a list 1reference picture for direct mode has only a list 1 motion vector, thelist 1 motion vector of the co-located block is selected and used as themotion vector for derivation of the direct mode motion vectors. Thedirect mode motion vectors may then be derived as discussed in detailabove using the selected motion vector.

The embodiments of the present invention may further include determiningthe list 0 reference picture for direct mode as a reference picturereferenced by the co-located block. The co-located block may includereference information referencing a reference picture. For example, theselected motion vector may point to a reference picture, and thisreference picture may be selected as the list 0 reference picture fordirect mode.

Alternatively, a decoded picture located temporally just before the Bpicture may be determined as the list 0 reference picture for directmode.

Although example embodiments of the present invention have beendisclosed for illustrative purposes, those skilled in the art willappreciate that various modifications, additions and substitutions arepossible, without departing from the scope and spirit of the invention.

What is claimed is:
 1. A method for a moving picture coding system toderive at least one motion vector of a bi-predictive block in a currentpicture from a motion vector of a first block in a first picture,comprising: selecting, by the moving picture coding system, a list 1motion vector of the first block in the first picture as a motion vectorfor deriving list 0 and list 1 motion vectors of the bi-predictive blockif the first block only has the list 1 motion vector, the first picturebeing permitted to be located temporally before the current picture andpermitted to be located temporally after the current picture; scalingthe selected motion vector; and deriving the list 0 and list 1 motionvectors of the bi-predictive block by applying a bit operation to thescaled motion vector, the bit operation including 8 bits right shift.